/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController;
import model.Usuario;
import model.Amigo;
import java.util.List;
import org.springframework.beans.support.PagedListHolder;
import service.UsuarioService;
import service.amigoService;
import funcion.enviarMail;
import java.util.ArrayList;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
import org.springframework.web.servlet.mvc.Controller;

/**
 *
 * @author MIS DOCUMENTOS
 */
public class ResponderSolicitud extends AbstractCommandController {

    private UsuarioService usuarioService;
    private amigoService amigoService;
    private enviarMail enviarmail;
    private static Logger loggers = null;

    public void setAmigoService(amigoService amigoService) {
        this.amigoService = amigoService;
    }

    public void setUsuarioService(UsuarioService usuarioService) {
        this.usuarioService = usuarioService;
    }

    public ResponderSolicitud() {
        this.setCommandClass(Usuario.class);
        this.setCommandClass(Amigo.class);
        loggers = Logger.getLogger(Usuario.class.getName());
        loggers.setLevel(Level.ALL);
        DOMConfigurator.configure("C:/Documents and Settings/Administrador/Escritorio/HayTour - Repositorio/hayTourViajes/src/java/main/resources/log4j.xml");

    }

    protected ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object form, BindException errors) throws Exception {
        Map model = new HashMap();

        Usuario user2;
        Usuario user1;
        String correo;



        user1 = (Usuario) usuarioService.getUsuario(Long.parseLong(request.getParameter("ux")));
        user2 = (Usuario) usuarioService.getUsuario(Long.parseLong(request.getParameter("ua")));

        correo = user2.getCorreo();
        Amigo amigos;
        List user;
        System.out.println("usurio1" + user1.getIdUsuario());
        System.out.println("usurio2" + user2.getIdUsuario());
        user = amigoService.getUsuarioSolicitud(user2.getIdUsuario(), user1.getIdUsuario());

        amigos = (Amigo) user.get(0);
        Long id;
        id = amigos.getIdAmigo();
        Long var;
        var = Long.parseLong(request.getParameter("re"));
        System.out.println(id);
        System.out.println("otra vez" + var);
        if (var == 0) {
            loggers.info(user2.getNombre() + " Acepto la solicitud de " + user1.getNombre() + " Para ser amigos en hayTour");
            Amigo nuevo = new Amigo(id, user2, user1, "APROBADO");
            amigoService.saveAmigo(nuevo);
          //  enviarmail.setMensaje(correo, "Solicitud de Amigos en hayTour", "Estimado(a): " + user2.getNombre() + ", " + user1.getNombre() + " " + user1.getApellido() + " a ACEPTADO ser amigos(as) en hayTour");

        } else {
            Amigo nuevo = new Amigo(id, user1, user2, "RECHAZADO");
            amigoService.saveAmigo(nuevo);
        }

        request.getSession().setAttribute("usuarioList", null);
        model.put("title", "MODIFICAR DATOS");
        model.put("usuario", user1);
        return new ModelAndView("perfilUsuario", model);

    }
}
